package com.hl.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 券活动信息对象 coupon_activity
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
public class CouponActivity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动唯一ID */
    private Integer activityId;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String activityName;

    /** 活动类型(1:新人发劵;2:精确发劵;3:邀新赠券;4:自动赠券;) */
    @Excel(name = "活动类型(1:新人发劵;2:精确发劵;3:邀新赠券;4:自动赠券;)")
    private String activityType;

    /** 活动范围（仅精确发券时有效，值为：指定会员、全部会员） */
    @Excel(name = "活动范围", readConverterExp = "仅=精确发券时有效，值为：指定会员、全部会员")
    private String activityScope;

    /** 领取频率（仅自动赠券时有效，值为：每日一次、每周一次、每月一次） */
    @Excel(name = "领取频率", readConverterExp = "仅=自动赠券时有效，值为：每日一次、每周一次、每月一次")
    private String receiveFrequency;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 活动总发放数量（0表示无限制） */
    @Excel(name = "活动总发放数量", readConverterExp = "0=表示无限制")
    private Integer totalIssueCount;

    /** 单日发放数量（0表示无限制） */
    @Excel(name = "单日发放数量", readConverterExp = "0=表示无限制")
    private Integer dailyIssueCount;

    /** 单用户限领数量（0表示无限制） */
    @Excel(name = "单用户限领数量", readConverterExp = "0=表示无限制")
    private Integer userLimitCount;

    /** 活动状态（1：未开始；2：进行中；3：已结束；4：已暂停） */
    @Excel(name = "活动状态", readConverterExp = "1=：未开始；2：进行中；3：已结束；4：已暂停")
    private String status;

    /** 券活动与券的关联信息 */
    private List<CouponActivityRelation> couponActivityRelationList;

    /** 活动用户关联列表 */
    private List<ActivityUserRelation> activityUserRelationList;

    public void setActivityId(Integer activityId) 
    {
        this.activityId = activityId;
    }

    public Integer getActivityId() 
    {
        return activityId;
    }

    public void setActivityName(String activityName) 
    {
        this.activityName = activityName;
    }

    public String getActivityName() 
    {
        return activityName;
    }

    public void setActivityType(String activityType) 
    {
        this.activityType = activityType;
    }

    public String getActivityType() 
    {
        return activityType;
    }

    public void setActivityScope(String activityScope) 
    {
        this.activityScope = activityScope;
    }

    public String getActivityScope() 
    {
        return activityScope;
    }

    public void setReceiveFrequency(String receiveFrequency) 
    {
        this.receiveFrequency = receiveFrequency;
    }

    public String getReceiveFrequency() 
    {
        return receiveFrequency;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setTotalIssueCount(Integer totalIssueCount) 
    {
        this.totalIssueCount = totalIssueCount;
    }

    public Integer getTotalIssueCount() 
    {
        return totalIssueCount;
    }

    public void setDailyIssueCount(Integer dailyIssueCount) 
    {
        this.dailyIssueCount = dailyIssueCount;
    }

    public Integer getDailyIssueCount() 
    {
        return dailyIssueCount;
    }

    public void setUserLimitCount(Integer userLimitCount) 
    {
        this.userLimitCount = userLimitCount;
    }

    public Integer getUserLimitCount() 
    {
        return userLimitCount;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public List<CouponActivityRelation> getCouponActivityRelationList()
    {
        return couponActivityRelationList;
    }

    public void setCouponActivityRelationList(List<CouponActivityRelation> couponActivityRelationList)
    {
        this.couponActivityRelationList = couponActivityRelationList;
    }

    public List<ActivityUserRelation> getActivityUserRelationList()
    {
        return activityUserRelationList;
    }

    public void setActivityUserRelationList(List<ActivityUserRelation> activityUserRelationList)
    {
        this.activityUserRelationList = activityUserRelationList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("activityId", getActivityId())
            .append("activityName", getActivityName())
            .append("activityType", getActivityType())
            .append("activityScope", getActivityScope())
            .append("receiveFrequency", getReceiveFrequency())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("totalIssueCount", getTotalIssueCount())
            .append("dailyIssueCount", getDailyIssueCount())
            .append("userLimitCount", getUserLimitCount())
            .append("status", getStatus())
            .append("couponActivityRelationList", getCouponActivityRelationList())
            .toString();
    }
}
